import lazyLoading from './lazyLoading'

export default (routers, data) => {
  // 这里之所以要重新遍历一下，是因为，通常我们动态路由的时候，是获取服务端数据，这个component属性是一个字符串，或者可能连字段名都是其他的key
  // 所以这里要做一些转换
  generaMenu(routers, data)
  // 最后push404页面
  routers.push({ path: '*', redirect: '/404', hidden: true })
}
function generaMenu(routers, data) {
  data.forEach(item => {
    const menu = Object.assign({}, item)
    if (menu.component === 'Layout') {
      // 首页组件特殊处理
      menu.component = () => import('@/layout')
    } else {
      menu.component = lazyLoading(menu.component)
    }
    const meta = {}
    meta.title = menu.name
    meta.icon = menu.icon
    meta.noCache = true
    if (menu.activeMenu) {
      meta.activeMenu = menu.activeMenu
    }
    if (menu.type === 3) {
      menu.hidden = true
    }
    if (menu.type === 4) {
      // 如果type为主菜单，面包屑链接不可点击
      menu.redirect = 'noRedirect'
    }
    menu.name = menu.path.replace('/', '') + menu.name
    menu.meta = meta
    // console.log(menu)
    if (item.children) {
      menu.children = []
      generaMenu(menu.children, item.children)
    }
    routers.push(menu)
  })
}
